#include <cstdio>
#include <vector>

using namespace std;

struct Node
{
    int m1, m2;
};

struct Edge
{
    int v, w;
    Edge( ) { }
    Edge( int _v, int _w )
        : v( _v ), w( _w ) { }
};

int n;
vector<Edge> li[ 10001 ];
bool visit[ 10001 ];
Node a[ 10001 ];

void init( )
{
    int i, u, v, w;
    for ( i = 0; i < n; i++ )
    {
        visit[ i ] = 0;
        li[ i ].clear( );
    }
    for ( i = 0; i < n - 1; i++ )
    {
        scanf("%d%d%d", &u, &v, &w);
        u--; v--;
        li[ u ].push_back( Edge( v, w ) );
        li[ v ].push_back( Edge( u, w ) );
    }
}

void dfs( int p )
{
    int i, t;
    if ( li[ p ].size( ) == 1 )
    {
        a[ p ].m1 = 0;
        a[ p ].m2 = 100000000;
        return ;
    }
    a[ p ].m1 = a[ p ].m2 = 100000000;
    for ( i = 0; i < li[ p ].size( ); i++ )
        if ( !visit[ li[ p ][ i ].v ] )
        {
            visit[ li[ p ][ i ].v ] = 1;
            dfs( li[ p ][ i ].v );
            if ( a[ p ].m2 > a[ li[ p ][ i ].v ].m2 + li[ p ][ i ].w )
                a[ p ].m2 = a[ li[ p ][ i ].v ].m2 + li[ p ][ i ].w;
            if ( a[ p ].m1 > a[ p ].m2 )
            {
                t = a[ p ].m1;
                a[ p ].m1 = a[ p ].m2;
                a[ p ].m2 = t;
            }
            if ( a[ p ].m2 > a[ li[ p ][ i ].v ].m1 + li[ p ][ i ].w )
                a[ p ].m2 = a[ li[ p ][ i ].v ].m1 + li[ p ][ i ].w;
            if ( a[ p ].m1 > a[ p ].m2 )
            {
                t = a[ p ].m1;
                a[ p ].m1 = a[ p ].m2;
                a[ p ].m2 = t;
            }
        }
}

void work( )
{
    int i, ans = 100000000;
    if ( n == 2 )
    {
        printf("%d\n", li[ 0 ][ 0 ].w);
        return ;
    }
    for ( i = 0; i < n; i++ )
        if ( li[ i ].size( ) > 1 )
        {
            visit[ i ] = 1;
            dfs( i );
            break;
        }
    for ( i = 0; i < n; i++ )
        if ( ans > a[ i ].m1 + a[ i ].m2 )
            ans = a[ i ].m1 + a[ i ].m2;
    printf("%d\n", ans);
}

int main( )
{
    while ( scanf("%d", &n) && n )
    {
        init( );
        work( );
    }
    return 0;
}
